跳到主要内容

GPUCanvas

一个 GPU 画布。使用 .image 配合 renderer:drawImage() 来合成结果。通过 beginRenderPass() 发出 GPU 绘制调用。

字段

image

renderer:drawImage() 的后备图像。

width

像素宽度。

height

像素高度。

format

画布后备纹理的本地像素格式(D3D 上为 'bgra8unorm',其他地方为 'rgba8unorm')。MSAA 解析要求源和目标具有相同的格式——始终从此值派生 GPUTexture 和管线格式:

  local fmt = canvas.format
GPUPipeline.new({ colorTargets = {{ format = fmt }}, sampleCount = 4 })

方法

resize

resize(width: number, height: number) -> ()

调整画布大小。重新创建后备纹理和任何深度缓冲区。

beginRenderPass

beginRenderPass(desc: RenderPassDesc?) -> GPURenderPass

开始针对此画布的 GPU 渲染 pass。省略 desc.color 将渲染到画布自己的后备纹理。

colorView

colorView() -> GPUTextureView

画布后备纹理的视图。在后续 pass 中用作采样器输入。